#include <iostream>
#include <stack>
#include <vector>
#include "../head/struct.h"

using namespace std;

// 144
/**
 * 二叉树的前序遍历， 递归遍历
 * 时间复杂度: O(n), n为树的节点个数
 * 空间复杂度: O(h), h为树的高度	
 */
class Solution {
public:
	vector<int> preorderTraversal(TreeNode* root) {
		vector<int> res;
		if(root == NULL)
			return res;
		__preorderTraversal(root, res);
		return res;
	}
private:
	void __preorderTraversal(TreeNode* node, vector<int> &res){
		if(node){
			res.push_back(node->val);
			__preorderTraversal(node->left, res);
			__preorderTraversal(node->right, res);
		}
	}
};

int main(){}
